<?php
Yii::import('application.models.ReporteDetail');
Yii::import('application.models.Users');
Yii::import('application.components.ActiveRecordIterator');
Yii::import('application.vendors.*');
require_once('PHPMailer/class.phpmailer.php');

$listadoAlertas = new ActiveRecordIterator($dataProvider, 200);

foreach ($listadoAlertas as $index => $data) {	

	$diasTotales = (strtotime($data->fecha_fin) - strtotime($data->fecha_inicio)) / (60 * 60 * 24);
	$diasDesdeActualidad = (strtotime($data->fecha_fin) - strtotime(date("Y-n-j"))) / (60 * 60 * 24);
	$porcentajeActualTemporal= ($diasDesdeActualidad/$diasTotales*100);
	
	//TODO: EL RANGO DE MAX/MIN SOBRE ALERTA DEBE SER DINAMICO?
	$porcentajeErrorMenos = $data->porcentaje-12;
	$porcentajeActual = floor(100-$porcentajeActualTemporal);
	
	$estado='';
	$descripcion='';
	$color='';

	if (($porcentajeActual > $porcentajeErrorMenos && $porcentajeActual < $data->porcentaje))
	{
		$estado="B";
		$descripcion="Atencion Urgente";
		$color = "orange";
	}

	if($porcentajeActual >= $data->porcentaje)
	{
		$estado="C";
		$descripcion="Atrasados";
		$color = "red";
	}
	
	if($porcentajeActual < $porcentajeErrorMenos)
	{
		$estado="A";
		$descripcion="A Tiempo";
		$color = "green";
	}
	
	$connection = Yii::app()->db;
	
	$command = $connection->createCommand("	
	INSERT INTO alarm_reporte_detail
	(
	id_reporte_master,idalertas,codigo_proceso,id_proveedor,proveedor,objeto,id_tipo_contratacion,
	tipo_contratacion,id_tipo_compra,tipo_compra,monto,administrador_contrato,idalarm_forma_pago,
	forma_pago,fecha_inicio,fecha_fin,porcentaje_alerta,porcentaje_actual,tipo_estado,tipo_descripcion,tipo_color)
	VALUES
	(	
	{$reporteMaster->id_reporte_master},
	{$data->idalertas},
	'{$data->codigo_proceso}',
	$data->proveedor,
	'{$data->proveedor0->razon_social}',
	'$data->objeto',
	{$data->tipo_contratacion},
	'{$data->tipoContratacion->nombre}',
	{$data->tipo_compra},
	'{$data->tipoCompra->nombre}',
	{$data->monto},
	'{$data->administrador_contrato}',
	{$data->idalarm_forma_pago},
	'{$data->idalarmFormaPago->nombre}',
	'{$data->fecha_inicio}',
	'{$data->fecha_fin}',
	{$data->porcentaje},
	{$porcentajeActual},
	'{$estado}',
	'{$descripcion}',
	'{$color}'
	);
	");
	
	$command->query();	
}

	$reporteMaster = $reporteMaster->find(
		array(
			'condition'=>'t.id_reporte_master=:id_reporte_master',
			'params'=>array(':id_reporte_master'=>$reporteMaster->id_reporte_master),
			'order'=>'Detalles.tipo_estado desc,Detalles.fecha_fin',
			'with'=>'Detalles',
		)
	);
	
	$alarmasTotales =count($reporteMaster->Detalles);
	
	$mensaje="<h2>REPORTE DE ALERTAS AL {$reporteMaster->fecha_generado}</h2>";
	
	$usuario = User::model()->findByPk($reporteMaster->usuario_creacion);
	
	$mensaje.="<p>Generado por {$usuario->username}.<br/>
				Alarmas Totales: {$alarmasTotales}
	</p>";
	
	$estadoTemporal="";
	
	$contador = 0;
	
	foreach ($reporteMaster->Detalles as $ReporteDetalle) {
		
	
		if($estadoTemporal!=$ReporteDetalle->tipo_estado)	
		{	
			if($contador!=0)
				$mensaje.="</table>";
				
			$contador++;
				
			
			$estadoTemporal = $ReporteDetalle->tipo_estado;
			$mensaje.="<br/><b style='color:{$ReporteDetalle->tipo_color};font-size:small;'>PROCESOS {$ReporteDetalle->tipo_descripcion}</b>
			<table cellspacing='0' border='1'>
	
			<tr>
				<th scope='col'>INFO</th>
				<th scope='col'>CODIGO</th>
				<th scope='col'>OBJETO</th>
				<th scope='col'>PROVEEDOR</th>
				<th scope='col'>MONTO</th>
				<th scope='col'>FECHA INICIO</th>
				<th scope='col'>FECHA FIN</th>		
				<th scope='col'>% ALERTA</th>
				<th scope='col'>% ACTUAL</th>
			</tr>						
			";	

			
		}
		
		$url = Yii::app()->createAbsoluteUrl('alertas/view',array('id'=>$ReporteDetalle->idalertas));
		
		$mensaje.= "<tr>
			<td><a href='{$url}'>Ver Detalles</a></td> 
			<td>{$ReporteDetalle->codigo_proceso}</td> 
			<td>{$ReporteDetalle->objeto}</td>
			<td>{$ReporteDetalle->proveedor}</td>
			<td>{$ReporteDetalle->monto}</td>
			<td>".Yii::app()->dateFormatter->formatDateTime(CDateTimeParser::parse($ReporteDetalle->fecha_inicio, 'yyyy-MM-dd'),'medium',null)."</td>
			<td>".Yii::app()->dateFormatter->formatDateTime(CDateTimeParser::parse($ReporteDetalle->fecha_fin, 'yyyy-MM-dd'),'medium',null)."</td>			
			<td>{$ReporteDetalle->porcentaje_alerta}</td>
			<td>{$ReporteDetalle->porcentaje_actual}</td>
			</tr>";
		
	}
	
	$phpMailer = new PHPMailer();
	
					$phpMailer->SetFrom("alarmas@manta-online.com","Gestor de Alarmas");
					
					$destinatarios = Notificacion::model()->findAll();				
					foreach ($destinatarios as $destinatario)				
						$phpMailer->AddAddress($destinatario->correo,$destinatario->nombre);
						
					$phpMailer->Subject = 'REPORTE AUTOMATICO DE ALERTAS';
															
					$phpMailer->Body = $mensaje;
					$phpMailer->IsHTML(true);
					$phpMailer->Send();								
?>